package com.luxsoft.em2.replication.local.consumers;

import org.apache.log4j.Logger;
import org.hibernate.ReplicationMode;

import com.luxsoft.siipap.service.ServiceLocator2;
import com.luxsoft.sw3.replica.EntityLog;

import com.luxsoft.utils.LoggerHelper;

public class AbstractSucursalConsumer {
	
	Logger logger=LoggerHelper.getLogger();
	
	
	
	public void importarEntidad(EntityLog log){
		logger.info("Recibiendo entidad  en la sucursal para su prcesamiento: "+log);		
		doImportar(log);
		afterReplicate(log);
	}
	
	/**
	 * Implementacion de la replicacion por default importe usando Hibernate session replicate method
	 * Funciona como template method para personalizar la importacion
	 * 
	 * @param log
	 */
	protected void doImportar(EntityLog log){
		ServiceLocator2.getHibernateTemplate().replicate(log.getBean(), ReplicationMode.OVERWRITE);
	}
	
	public void afterReplicate(EntityLog log){
		
	}

}
